<?php
/**
 * 币token信息redis数据库
 * @App	
 * @Group 
 * @Action CoinTokenRedis
 * @author lilei
 * @date 2018年5月23日
 * // // redis 39.104.163.200:6379  db1  key feixiaohao_token 和 ticker 两个  field 都是符号名字比如BTC就是比特币
 */
/**
 * 币ticker信息redis数据库
 * @App
 * @Group
 * @Action CoinTickerRedis
 * @author lilei
 * @date 2018年5月24日
 * // // redis 39.104.163.200:6379  db1  key feixiaohao_token 和 ticker 两个  field 都是符号名字比如BTC就是比特币
 * {
"max_supply": 21000000,
"id": 1,
"circulating_supply": 17059725,
"symbol": "BTC",
"name": "Bitcoin",
"last_updated": 1527501272,
"rank": 1,
"quotes": {
"USD": {
"price": 7242.05,
"percent_change_7d": -14.74,
"market_cap": 123547381436,
"percent_change_24h": -1.33,
"volume_24h": 4724060000,
"percent_change_1h": 0.05
}
},
"total_supply": 17059725,
"website_slug": "bitcoin"
}
 */
namespace app\common\redis;
class CoinTokenRedis extends RedisModel {
	
	/**
	 * 白皮书地址
	 * @var String
	 */
	public $white_paper_addr;
	
	/**
	 * 项目类型 
	 * "proj_category": [],
	 * @var array(Object)
	 */
	public $proj_category;
	
	/**
	 * Blog 地址
	 * "blog_addr": "",
	 * @var string
	 */
	public $blog_addr;
	
	/**
	 * 总市值
	 * "total_market_value": "",
	 * @var array
	 */
	public $total_market_value; //array(String)
	/**
	 * 总市值排名
	 * "第106名"
	 * @var String
	 */
	public $total_market_value_rank;
	
	/**
	 * 流通率
	 * "circulation_ratio": "63.14%"
	 * @var String
	 */
	public $circulation_ratio;
	
	/**
	 * 上架交易所个数
	 * "shelf_exchange_num": " 1家 ",
	 * @var String
	 */
	public $shelf_exchange_num;
	
	/**
	 * 流通数量
	 * "circulation_num": "18,942,438,669 DROP",
	 * @var String
	 */
	public $circulation_num;
	
	/**
	 * 项目简介
	 * "proj_desc": ["dropil平台为您提供简化您的加密货币分析，交易和存储的自主工具。 使用您的drops与dex进行交易，就像选择您的风险级别并根据您的输入让dex交易一样简单。"],
	 * @var String
	 */
	public $proj_desc;
	
	/**
	 * 英文名称
	 * "name": "Dropil",
	 * @var String
	 */
	public $name;
	
	/**
	 * 代码/标识
	 *  "symbol": " DROP ",
	 * @var String
	 */
	public $symbol;
	
	/**
	 * 官方网址
	 * "official_website": ["dropil.com"],
	 * @var array(String)
	 */
	public $official_website;
	
	/**
	 * 发行时间
	 * "issue_time": "2018-03-19",
	 * @var String
	 */
	public $issue_time;
	
	/**
	 * 总发行量
	 *  "total_circulation": "30,000,000,000 DROP",
	 * @var String
	 */
	public $total_circulation;
	
	/**
	 * 流通市值
	 * "circulation_market_value": ["¥762,386,526", "≈$119,650,103", "≈15,154BTC"],
	 * @var array(String)
	 */
	public $circulation_market_value;
	
	/**
	 * 核心算法
	 * "main_algorithm": "",
	 * @var String
	 */
	public $main_algorithm;
	
	/**
	 * 中文名称
	 * "cn_name": "－",
	 * @var String
	 */
	public $cn_name;
	
	/**
	 * 支持钱包
	 * "support_purse": "",
	 * @var String
	 */
	public $support_purse;
	
	/**
	 * 区块站
	 * "block_station": ["etherscan.io/token/0x4672bad527107471cb5067a887f4656d585a8a31"],
	 * @var array(String)
	 */
	public $block_station;
	
	/**
	 * 全球总市值占比
	 * "total_market_value_ratio": " <0.1% ",
	 * @var String
	 */
	public $total_market_value_ratio;
	
	/**
	 * 共识机制
	 * "consensus_mech": "",
	 * @var String
	 */
	public $consensus_mech;
	
	/**
	 * 众筹价格
	 * "crowfunding_price": "",
	 * @var String
	 */
	public $crowfunding_price;
	
	/**
	 * 换手率
	 * "change_hands_ratio": "0.03%"
	 * @var String
	 */
	public $change_hands_ratio;
	
	/**
	 * Redis配置名称
	 * @var string
	 */
	public $redis = 'coinExchangeData';
	
	/**
	 * Redis key
	 * @var string
	 */
	public $key = 'feixiaohao_token';
	
	
	/**
	 * 获取所有的Token信息列表
	 * @return array 
	 */
	public function GetAllTokensInfoList() {
		$res = $this->HashGetAll();
		if ( !$res ) {
			return array();
		}
		foreach ( $res as &$v) {
			$v = json_decode($v, true);
			if ( $v ) {
				$v = $this->fillTokenItem($v);
			}
		}
		return $res;
	}
	
	/**
	 * 获取所有Token的symbol列表
	 * @return array
	 */
	public function GetAllTokensSymbol() {
		return $this->HashAllFields();
	}
	
	/**
	 * 通过Token的编号(Symbol)获取token信息
	 * @param string $Symbol 
	 * @return array
	 */
	public function GetTokenInfo( $Symbol ) {
		$res = $this->HashGetByField($Symbol);
		if ( !$res ) {
			return array();
		}
		$res = json_decode($res, true);
		if ( $res ) {
			$res = $this->fillTokenItem($res);
		}else {
			$res = array();
		}
		return $res;
	}
	
	/**
	 * 完善TokenItem数据
	 * @param array $item
	 */
	public function fillTokenItem( $item ) {
		// 项目类型
		$item['proj_category'] =  $item['proj_category']?  $item['proj_category'][0] : '';
		// 市值拆分
// 		$item['market_value_cny'] = '0.00';
// 		$item['market_value_usd'] = '0.00';
// 		$item['market_value_btc'] = '0.00';
// 		if ( $item['total_market_value'] ) {
// 			// 先过滤没用的字符串
// 			$total_market_value = str_replace(array(CNY_MARK,USD_MARK,'≈','BTC', ','), '', $item['total_market_value']);
// 			// 再提取数字
// 			foreach ( $total_market_value as $k => $mv ) {
// 				// 				if (preg_match ( '/\d+/', $mv, $r )) {
// 				// 					$mv = ( int ) $r [0];
// 				// 				}
// 				// 赋值
// 				if ( !$mv ) {
// 					continue;
// 				}
// 				switch ( $k ) {
// 					case 0:
// 						$item['market_value_cny'] = $mv;
// 						break;
// 					case 1:
// 						$item['market_value_usd'] = $mv;
// 						break;
// 					case 2:
// 						$item['market_value_btc'] = $mv;
// 						break;
// 				}
// 			}
// 		}
		// 总市值排名
		$item['market_value_rank'] = $item['total_market_value_rank'];
		
		// 流通数量
		$item['circulation'] = 0;
		if ( $item['circulation_num'] ) {
			if( preg_match_all ( '/\d+/',  $item['circulation_num'], $r ) ) {
				$item['circulation']  = implode('', $r[0]);
			}
		}
		
		// 简介
		$item['intro'] = '';
		if ( $item['proj_desc'] ) {
			$item['intro'] = implode('', $item['proj_desc']);
		}
		
		// 英文名称
		$item['en_name'] = $item['currency'] = $item['name'];
		
		// 从发行量
		$item['public_amount'] = 0;
		if ( $item['total_circulation'] ) {
			if( preg_match_all ( '/\d+/',  $item['total_circulation'], $r ) ) {
				$item['public_amount']  = implode('', $r[0]);
			}
		}
		
		// 流通市值拆分
		$item['circulation_market_cny'] = '0.00';
		$item['circulation_market_usd'] = '0.00';
		$item['circulation_market_btc'] = '0.00';
		if ( $item['circulation_market_value'] ) {
			// 先过滤没用的字符串
			$circulation_market_value = str_replace(array(CNY_MARK,USD_MARK,'≈','BTC', ','), '', $item['circulation_market_value']);
			// 再提取数字
			foreach ( $circulation_market_value as $k => $mv ) {
				if ( !$mv ) {
					continue;
				}
				switch ( $k ) {
					case 0:
						$item['circulation_market_cny'] = $mv;
						break;
					case 1:
						$item['circulation_market_usd'] = $mv;
						break;
					case 2:
						$item['circulation_market_btc'] = $mv;
						break;
				}
			}
		}
		
		// 中文名称
		$item['cht_name'] = $item['cn_name'];
		
		// 区块站
		$item['block_station'] = '';
		if ( $item['block_station'] ) {
			$item['block_station'] = $item['block_station'][0];
		}
		// 全球总市值占比
		$item['market_value_ratio'] = $item['total_market_value_ratio'];
		
		// 官方网站
		$item['official_website'] = $item['official_website'] ? $item['official_website'][0] : '';
		
		return $item;
	}
	
	
	
	
	
	
	
	
	
	
	
}

